'use strict';
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
function s(i, c, r, e) {
  if (e && typeof e == 'object')
    if (Array.isArray(e))
      for (let t = 0, o = e.length; t < o; ++t) {
        const f = e[t],
          n = s(i, e, String(t), f);
        n === void 0 ? delete e[t] : n !== f && (e[t] = n);
      }
    else if (e instanceof Map)
      for (const t of Array.from(e.keys())) {
        const o = e.get(t),
          f = s(i, e, t, o);
        f === void 0 ? e.delete(t) : f !== o && e.set(t, f);
      }
    else if (e instanceof Set)
      for (const t of Array.from(e)) {
        const o = s(i, e, t, t);
        o === void 0 ? e.delete(t) : o !== t && (e.delete(t), e.add(o));
      }
    else
      for (const [t, o] of Object.entries(e)) {
        const f = s(i, e, t, o);
        f === void 0 ? delete e[t] : f !== o && (e[t] = f);
      }
  return i.call(c, r, e);
}
exports.applyReviver = s;
